// import router from '../router/index'
// import vue from 'vue'
// import { getToken, removeToken } from '@/utils/auth'
// import { API_BASE_URL } from '@/config'
// import { ajax } from 'jingxi'
// window.requestMessageError = null
// export default new ajax(
//   {
//     baseURL: API_BASE_URL,
//     timeout: 3000000,
//     // headers: {
//     //   'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
//     // }
//     // openSign: true,
//     // signVersion: '2.0'
//   },
//   config => {
//     let tk = getToken()
//     if (tk && tk !== undefined && tk !== "" && tk !== "undefined") {
//       config.headers['Authorization'] = "Bearer " + tk;
//     }
//     // config.headers['token'] = tk
//     return config
//   },
//   response => {
//     /***
//      * 状态码
//      * 0 操作失败
//      * 1 操作成功
//      * 50000 token错误
//      * 3 未登录
//      * 4 数据不存在
//      * 5 系统异常
//      * 6 Token 过期或失效
//      */
//     if (
//       response.data.code == 0 ||
//       response.data.code == 4 ||
//       response.data.code == 5
//     ) {
//       window.requestMessageError && window.requestMessageError.close()
//       response.config.url.indexOf('saas/user/check') == -1 &&
//         vue.prototype.$message.error(response.data.msg)
//     }
//     if (response.data.code == 3) {
//       window.requestMessageError && window.requestMessageError.close()
//       window.requestMessageError = vue.prototype.$message.error('请重新登录')
//       setTimeout(() => {
//         router.push('/')
//       }, 500)
//     }
//     if (response.data.code == 6 || response.data.code == 50000) {
//       window.requestMessageError && window.requestMessageError.close()
//       window.requestMessageError = vue.prototype.$message.error('请重新登录')
//       removeToken()
//       setTimeout(() => {
//         router.push('/')
//       }, 500)
//     }
//     return response.data
//   }
// )




import router from '../router/index'
import vue from 'vue'
import { getToken, removeToken } from '@/utils/auth'
import { API_BASE_URL } from '@/config'
import axios from 'axios'


export const _axios = axios.create({
  timeout: 300000, // 请求超时时间
  // withCredentials: true,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
  }
})

// 创建axios实例
const service = axios.create({
  baseURL: API_BASE_URL, // api的base_url
  timeout: 300000 // 请求超时时间
})

// console.log("base: " + API_BASE_URL)


// request拦截器
service.interceptors.request.use(
  config => {
    // if (config.method === 'post') {
    //     config.data = qs.stringify(config.data);
    // }
    let token = getToken();
    if (token && token !== undefined && token !== "" && token !== "undefined") {
      config.headers['Authorization'] = "Bearer " + token;
    }

    return config;
  },
  error => {
    // Indicator.close()
    // Do something with request error
    Promise.reject(error);
  }
);

// respone拦截器
service.interceptors.response.use(
  response => {
    const res = response.data;
    // console.log(res)

    if (res.code != 200) {
      if (res.code == "401") {
        removeToken();
        window.requestMessageError && window.requestMessageError.close()
        window.requestMessageError = vue.prototype.$message.error('请重新登录')
        router.push({ path: '/login/signin' })
        return Promise.reject(res);
      } else {
        window.requestMessageError && window.requestMessageError.close()
        window.requestMessageError = vue.prototype.$message.error(res.message)
        return Promise.reject(res);

      }
    } else {
      return res;
    }
  },
  error => {
    window.requestMessageError && window.requestMessageError.close()
    // Toast(error.message);
    // console.log(error, '##################')
    return Promise.reject(error);
  }
);

export default service;

export const append = data => {
  const array = []
  if (!data) {
    return ''
  }
  for (let v in data) {
    // console.log(data[v])
    if(data[v] !== undefined && data[v] !== null && data[v] !== ''){
      array.push(`${v}=${data[v]}`)
    }
   
  }
  return '?' + array.join('&')
}

export const appends = data => {
  const array = {}
  if (!data) {
    return ''
  }
  for (let v in data) {
    // console.log(data[v])
    if(data[v] !== undefined && data[v] !== null && data[v] !== ''){
      array[v] = data[v]
    }
  // if (!data) {
  //   return ''
  // }
  // for (let v in data) {
  //   // console.log(data[v])
  //   if(data[v] !== undefined && data[v] !== null && data[v] !== ''){
  //     array.push(`${v}=${data[v]}`)
  //   }
   
  }
  return array
}